home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / spacei_1 / spinvdrs.bas < prev   
BASIC Source File  |  1999-01-27  |  2KB  |  69 lines

  1. Attribute VB_Name = "Module1"
  2. Private Type playerRecord
  3.     name As String
  4.     score As Long
  5. End Type
  6. Public players(3) As playerRecord ' public because we've got proc in other modules
  7.  
  8.  
  9. 'my detectcollision function
  10. Public Function detectcol(obj1, obj2 As Object) As Boolean
  11.     Dim obj1cx, obj1cy, obj2cx, obj2cy, obj2Left, obj2Top As Long
  12.     obj1cx = obj1.Left + (obj1.Width / 2) 'centre of obj1
  13.     obj1cy = obj1.Top + (obj1.Height / 2)
  14.     obj2cx = obj2.Left + (obj2.Width / 2) 'centre of obj1
  15.     obj2cy = obj2.Top + (obj2.Height / 2)
  16.     detectcol = False 'assume false return value
  17.     'algorithm from 'the black art of visual basic programming'
  18.     'check if centers of objects are further from each other than their widths
  19.     If Abs(obj1cx - obj2cx) < ((obj1.Width + obj2.Width) / 2) Then
  20.         If Abs(obj1cy - obj2cy) < ((obj1.Height + obj2.Height) / 2) Then
  21.         
  22.             detectcol = True
  23.             Beep
  24.         End If
  25.     End If
  26.     
  27.     
  28.     'top left corner
  29.     'If obj2.Left >= obj1.Left And obj2.Left <= obj1.Left + obj1.Width _
  30.     'And obj2.Top >= obj1.Top And obj2.Top <= obj1.Top + obj1.Height _
  31.     'Then
  32.     '    detectcol = True
  33.     '    Beep
  34.     '    Exit Function
  35.     'End If
  36.     'topright corner
  37.     'If obj2.Left + obj2.Width >= obj1.Left And obj2.Left + obj2.Width <= obj1.Left + obj1.Width _
  38.     'And obj2.Top >= obj1.Top And obj2Top <= obj1.Top + obj1.Height _
  39.     'Then
  40.     '    detectcol = True
  41.     'End If
  42.     'bottom right corner
  43.     'If obj2.Left + obj2.Width >= obj1.Left And obj2.Left + obj2.Width <= obj1.Left + obj1.Width _
  44.     'And obj2.Top + obj2.Height >= obj1.Top And obj2.Top + obj2.Height <= obj1.Top + obj1.Height _
  45.     'Then
  46.     '    detectcol = True
  47.     '    Beep
  48.     '    Exit Function
  49.     'End If
  50.     'bottom left corner
  51.     'If obj2.Left >= obj1.Left And obj2.Left <= obj1.Left + obj1.Width _
  52.     'And obj2.Top + obj2.Height >= obj1.Top And obj2Top + obj2.Height <= obj1.Top + obj1.Height _
  53.     'Then
  54.     '    detectcol = True
  55.     'End If
  56.     'centre of obj 1 compared
  57.     'If obj1cx >= obj2.Left And obj1cx <= obj2.Left + obj2.Width _
  58.     'And obj1cy >= obj2.Top And obj1cy <= obj2.Top + obj2.Height _
  59.     'Then
  60.     '    detectcol = True
  61.     '    Beep
  62.     
  63.    ' End If
  64.    'these other functions(by me) used to test corners of one obj to see if
  65.    ' they were in other obj---I also used center of one obj in some tests
  66. End Function
  67.  
  68.  
  69.